iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
AI Engineering

3分鐘 AI Agent導論系列 第 30

[3分鐘 AI Agent導論] Day30 -- 混合檢索:兩全其美的藝術

  • 分享至 

  • xImage
  •  

昨天說了會把RAG的部分講完,今天結合前幾天的embedding,講解混合的方式。

稠密檢索與稀疏檢索,兩種方法各有盲區:稠密檢索懂語意但可能漏掉關鍵詞(搜"HTTP-403"可能返回"服務氣錯誤的泛討論)。稀疏檢索精準匹配但讀不懂同意詞(搜"KITTY"找不到"只寫了"cat"的文件)。混合檢索的思路很簡單 -- 兩個引擎都跑,結果合併 -- 難點在於如何把分布迥異的兩組得分整合成有意義的排序。

典型的混合檢索流水線包含3個階段、3個各司其職、並遞進。

第一階段是並行檢索,系統同時項稠密與稀疏兩個引擎發送查詢,各自召回一部份候選文件。

第二階段是結果融合,負責把兩路結果合成一個統一的候選池。難點在於兩路得分不可能直接比較:稠密檢索的餘弦相似度得分(通常0~1)和稀疏檢索的BM25得分(可能0~幾十的任意值),尺度和分部完全不同。常用的融合方式是倒數排名融合(Reciprocal Rank Fusion, RRF),完全拋開原始得分、只看排名,每個文件的綜合得分是它在各路結果中排名的平滑倒數總和,即得分 Σ 1/(k + rank),其中 k 是平滑常數(常取 60),用於壓低排名最靠前幾個位置之間的得分差距。RRF簡單且穩健,但只利用了排名訊息,丟失了原始得分中蘊含的豐富相關性信號。

不過要強調的是,流水線的第三階段神經重排序(Neural Ranking)並不是為了補救RRF丟掉的得分才存在的:無論前一部用哪種方式融合,重排序都值得加,因為它換用了一種更強的匹配機制。它讓跨編碼器對查詢和文件做深度交互匹配(有個問題,這個跟深度學習一樣嗎?),精度遠高於檢索階段雙編碼器各自獨立編碼、再靠向量運算比相似度的做法。具體做法是對融合產生的候選池中排名靠前的N個候選(EX.前50個)逐一精確打分,產生最終排序。注意重排序並不替代融合:融合負責從兩路結果中產生統一的候選池,重排序負責在這個候選池上精排。

打個比方:求職者把履歷交給獵頭快去篩選,是雙編碼器; 面試官與每位候選者深談,是跨編碼器。
前者依靠預先抽取的特徵做大規模初篩,後者則讓查詢與候選文件"面對面"逐字斟酌。重排序器採用的正是"跨編碼器(Cross-Encoder)"架構,與檢索階段的"雙編碼器(Bi-encoder)"形成鮮明對比。
雙編碼器為查詢和文件獨立生成向量,通過向量運算計算相似度,速度極快,但無法捕捉深層的匹配關係,適合從海量數據中做初步篩選。
跨編碼器則把查詢和候選文件拼接成一段完整的文字送入模型,讓模型逐字對比、輸出一個綜合的相關性得分,慢得多,但判斷更精準。
常用的重排序模型如BAAI的bge-reranker就採用這種架構。

如何度量檢索品質? 調優這樣一條多階段流水線,需要客觀的度量指標,最核心的有3個

指標 解釋
Recall@K(召回率@K) 包含正確答案的文件出現在前 K 个檢索結果中的查詢比例。回答「該找的找到了嗎?」只要相關文件進入上下文,LLM 就有機會利用它,因此是最貼近 RAG 需求的指標。
MRR(Mean Reciprocal Rank,平均倒數排名) 每个查詢取第一个相關文件排名的倒數,再對所有文件取平均。回答「找到得夠不夠靠前?」例如排名第 1 得 1 分,排名第 10 得 0.1 分。
nDCG(Normalized Discounted Cumulative Gain,歸一化折損累積增益) 綜合考慮所有相關文件的排名與相關程度。排名越靠後的相關文件得分折扣越大。回答「整個排序列表的品質如何?」

世紀難題告破宣稱:OpenAI 宣布其尚未正式發布、能力遠超 GPT-6 Astra 的次世代模型,驅動 10,000 個 AI Agent 協同運作 88 小時,寫出了長達 165 頁的純數學證明與完整 Lean 4 形式化驗證,宣稱破解了千禧難題 Navier-Stokes 方程。但同時也爆出學倫醜聞-竊密
https://www.aiposthub.com/openai-navier-stokes-millennium-problem-buckmaster-controversy/


上一篇
[3分鐘 AI Agent導論] Day29 -- 護欄與安全性 (2)&Harness複習
下一篇
[3分鐘 AI Agent導論] Day31 -- 超越扁平文本
系列文
3分鐘 AI Agent導論32
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言